﻿Public Class KOMary
    Inherits ObjektKO
    Public Sub New(ByVal Spieler As Integer)
        MyBase.New(Spieler, KIGabeEinsatzstellen.RundenAnfang)
        StartwerteLaden()
    End Sub
    Public Sub New(ByVal Spieler As Integer, ByVal Gabefuellstand As Integer, ByVal Gabenart As Gabemodi, ByVal neuSternkosten As Integer)
        MyBase.New(Spieler, Gabefuellstand, Gabenart, neuSternkosten, KIGabeEinsatzstellen.RundenAnfang)
        StartwerteLaden()
    End Sub

    Private Sub StartwerteLaden()
        KOID = "MARY"
        Armee = Armeen.AC.ToString
        Musik = "Mary"
        Bild = GetBildID()
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.AdvanceWars
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
                Gaben(1) = Gaben(0)
            Case CommanderWarsGameModi.AdvanceWars2
                Sternkosten = 1000
                Gabekosten = 3
                SpezialgabeKosten = 3
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case CommanderWarsGameModi.AdvanceWarsDS
                Sternkosten = 1000
                Gabekosten = 3
                SpezialgabeKosten = 3
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case CommanderWarsGameModi.AdvanceWarsDC
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 6
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case Else
                Sternkosten = 1000
                Gabekosten = 3
                SpezialgabeKosten = 3
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
        End Select
        KORange = 3
        KOname = Objektverwalter.GetKO(Bild).KOBeschreibung.Name

        KOLaden()
    End Sub

    Public Overrides Sub Gabeeinsetzen(Optional ByVal OhneFunktion As Boolean = False)
        If OhneFunktion = False Then
            KeineVersorgung(1)
            KeineTruppenBau()
            BackbufferSpiel.AddAnimation("SCREENFLASH", 2, New Point, True, ObjektSpielfeld.TopLayer)
        End If
        OffensivStaerke = New Feuerkrafttabelle120
        GabeEingesetzt()
    End Sub

    Public Overrides Sub KOLaden()
        ReperaturVerbotNachKampf = True
        OffensivStaerke = Nothing
        BesetzungsbonusNachEinheitenZerstoerung = -5
        If DataSettings.CommanderWarsGameModus = CommanderWarsGameModi.AdvanceWarsDC Then
            'Dafuer sinkt die Feuerkraft aber drastisch
            WetterReichweitenbonus(0) = 0
        End If
    End Sub
    Public Overrides Function GetPowerScript(ByVal Power As Integer) As KOCustom.Power.PowerScript
        Select Case Power
            Case 1
                Dim P As New KOCustom.Power.PowerScript
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectNoRation(1))
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectNoProduction())
                Return P
            Case 2
                Dim P As New KOCustom.Power.PowerScript
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectOtherDeffence(-1))
                Return P
            Case Else
                Return Nothing
        End Select
    End Function
    Public Overrides Sub SpezialGabeeinsetzen(Optional ByVal OhneFunktion As Boolean = False)
        If DataSettings.CommanderWarsGameModus = CommanderWarsGameModi.AdvanceWars Then
            If OhneFunktion = False Then
                KeineVersorgung(1)
                KeineTruppenBau()
                BackbufferSpiel.AddAnimation("SCREENFLASH", 2, New Point, True, ObjektSpielfeld.TopLayer)
            End If
            OffensivStaerke = New Feuerkrafttabelle120
            GabeEingesetzt()
        Else
            BesetzungsbonusNachEinheitenZerstoerung = -15
            OffensivStaerke = New Feuerkrafttabelle130
            If OhneFunktion = False Then
                AnimationEigene("SPEZIALGABE", 2)
                AndereDeckung(-1)
            End If
            GabeEingesetzt()
        End If

    End Sub

    Public Overrides Sub KOFrame()
        'Wir machen nichts
    End Sub
End Class

Public Class KOBeschreibungMary
    Inherits ObjektKOBeschreibung
    Public Sub New()
        Name = "Mary"
        Fein = "Cocktails"
        Nein = "Ausreden"
        Beschreibung = New String() {"Eine knallharte", "Anfuehrerin. Sie kennt", "keine Gnade."}
        Stil = New String() {"Einheit die von ihr Angegriffen", "wurden koennen sich eine", "Rundelang nicht reparieren.", "Wenn sie eine Einheit auf einem", "Gebaeude zerstoert sinkt", "die Besetzungszahl."}
        Gabebeschreibung = New String() {"Gegner koennen", "weder Truppen bauen noch", "sie reparieren."}
        SpezialgabeBeschreibung = New String() {"Deckungen senken die Verteidigung.", "Ihre Truppen sind staerker und", "ihr Besetzungsniedergang ist", "noch staerker."}
        GabeKosten = 3
        Spezialgabekosten = 3
        Gaben = New String() {"Highway der Pein", "Bloody Mary"}
        Synergie = New Decimal() {1.5#, 1, 0.5#, 0.5#, 0.5#, 0.5#, 0.5#, -1, -2, -1}
        KONamen = New String() {"ZAK", "ERIC", "SABAKI", "OZZY", "CARMEN", "EDWARD", "NELL", "ANDY", "MINAMOTO"}
        Doppelgabenamen = New String() {"Weg des Blutes", "Haende der Unterwelt", "Doppel-Gabe", "Doppel-Gabe", "Doppel-Gabe", "Doppel-Gabe", "Doppel-Gabe", "Doppel-Gabe", "Doppel-Gabe"}
        Gabesaetze = New String() {"Auf marschiert weiter! Der Sieg ist nah." _
                                  , "Keine Schmerzen! Keine Glorie!" _
                                  , "Ein Tropfen Blut ist ein Tropfen Fortschritt. Du solltest stolz auf deine Truppen sein." _
                                  , "Man nennt mich Bloody Mary. ...und nun kannst du mich drinken." _
                                  , "Wir kaempfen bis dein letzter Soldat Tod ist!" _
                                  , "Ich bin ein Soldat. Ich kaempfe wo man es mir sagt. Ich siege wo ich kaempfe."}
        Siegsaetze = New String() {"Sieht so aus als haette sich mein Einsatz gelohnt." _
                                , "Okay! Soldaten. Euer Job ist getan ihr koennt gehen." _
                                , "Lasst uns gehen und den Sieg mit einem Drink feiern."}
        Tauschsaetze = New String() {"Ich kenne keine Gnade. Es waere ein guter Job mich zu besiegen." _
                                    , "Zurueck zum intensiven Training. Und ruft nicht nach eurer Mami!"}
        Doppelgabesaetze = New DoppelGabesatz() {New DoppelGabesatz("ZAK", "MARY", "Einer geht ein Anderer kommt.", "Das ist der Kreislauf des Lebens.") _
                                              , New DoppelGabesatz("MARY", "ZAK", "Auf Soldaten auf vorwaerts.", "Du bist noch gemeiner als ich!") _
                                              , New DoppelGabesatz("MARY", "ERIC", "Ich moechte das Disziplin und Ordnung herrscht.", "Hauptsache sie machen alles platt!") _
                                              , New DoppelGabesatz("ERIC", "MARY", "Ich moechte alles zerstoeren!", "Wir kennen kein Erbarmen.")}
        Niederlagesaetze = New String() {"Ihr habt mich besiegt! Dann tut was ihr nicht lassen koennt.", _
                                     "Ihr habt mich besiegt. Ich uebernehme die gesamte Verantwortung."}
    End Sub
End Class
